Each device for capturing, creating, editing and displaying video content has a set of color reproduction attributes. One such set of attributes is the color domain (called color region or color gamut) of the device. A color domain of a device specifies the range of colors that the device can capture or produce. Color domains are also specified based on standards propagated by different standard setting organizations.
FIG. 1 illustrates two different color domains for video. Specifically, it illustrates a traditional CIE diagram 105 (more accurately referred to as a “CIE 1931 Color Space” diagram) that has two triangular regions 110 and 115 marked on this diagram. Each of these triangles represents a different color domain (i.e., a different range of colors) that is specified by a different color standard for video. The triangular region 110 represents the range of colors (i.e., the color gamut) specified by Rec. 601, a standard definition video standard, while the triangular region 115 represents the range of colors (i.e., the color gamut) specified by Rec. 709, a high definition video standard. As shown in FIG. 1, the Rec. 601 gamut specifies a different region in the color space than the Rec. 709 gamut.
The three vertices of each triangular region are the base non-white color points that define the triangular region. These three base non-white color points are often the most saturated base colors that are available in the particular color region that is depicted on the CIE diagram. The three base non-white colors are often referred to as the three primary colors. Some embodiments express a color region in terms of the three primary colors along with a white point. The white point in some such embodiments is a point inside the triangularly represented color region that is designated as the white point in the gamut. From the location of the white point, some embodiments generate weighting values to use to combine the primary colors to represent the “whitest” value for the color region.
Video content is often defined based on a color region (e.g., of a device or a standard) that differs from the color region of a device that displays the content. Accordingly, before playing back video content, some devices perform a series of color conversion operations to reformat the component color values of the content for display on the devices.
FIG. 2 illustrates one such series of operations. Specifically, it illustrates a color processing system 200 that performs five color processing operations to transform the colors of a video stream from a Rec. 601 standard definition, Y′CbCr format to a Rec. 709 high definition, Y′CbCr color format.
The first operation is a color coordinate system transform operation 205 that transforms the color of each video frame from a Rec. 601 Y′CbCr format to a Rec. 601 R′G′B′ format. In the received video, the brightness component is a luma component Y′, which is the weighted sum of the gamma-compressed R′G′B′ components of a color video. The non-linear gamma encoding of the luma value causes the R′G′B′ color components that result from the color coordinate transform operation 205 to also be non-linear and gamma encoded (which, in FIG. 2, is indicated as R′G′B′601).
To transform the colors of the video stream from the Rec. 601 color region to the Rec. 709 color region, the color processing system 200 performs a linearization operation 210 to transform the non-linear format of the R′G′B′601 color components to a linear RGB601 format of these components. The linearization operation applies an inverse power operation that removes the exponential gamma value that affects the RGB color component values.
After placing the RGB values in the linear domain, the color processing system 200 performs a color region conversion operation 215. This operation transforms the color values of the video from a Rec. 601 color region to a Rec. 709 color region. After this conversion, the system performs a gamma operation 220 on the RGB709 video content output from the color conversion process 215. Finally, the system 225 performs a color coordinate transform operation 225 on the R′G′B′709 video content that is output from the gamma operation 220. This color coordinate transform operation 225 converts the color coordinate system of the video from R′G′B′709 format to Y′CbCr709 format.
The color processing system 200 requires specialty hardware components to allow it to perform its color correction operations quickly. For instance, in some cases, the color system requires specialty processors (e.g., graphics processors) that include operators for performing the linearization and gamma operations. Such specialty hardware is not available in all systems in which color conversion operations are desirable. Also, such hardware adds to the overall system cost.